package com.jinzhi.jzweb.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.jinzhi.common.base.CoreService;
import com.jinzhi.common.utils.Result;
import com.jinzhi.jzapi.certificate.pojo.MyResultsVo;
import com.jinzhi.jzweb.domain.ExaminationResultsComDO;
import com.jinzhi.jzweb.pojo.ExaminationResultsABCPoVo;
import com.jinzhi.jzweb.pojo.ExaminationResultsExportAllVo;
import com.jinzhi.jzweb.pojo.ExaminationResultsExportVo;
import com.jinzhi.jzweb.pojo.ExaminationResultsPoVo;
import com.jinzhi.jzweb.pojo.moduleConfig.OverallStatisticsVo;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * 
 * <pre>
 * 考试成绩
 * </pre>
 * <small> 2020-02-24 21:00:12 | lance</small>
 */
public interface ExaminationResultsComService extends CoreService<ExaminationResultsComDO> {

    Page<MyResultsVo> selByUserId(Map map,int current, int number);

    Page<ExaminationResultsComDO> findLists(Map map,int current , int number);

    Page<ExaminationResultsComDO> findPageList(Map map, int current , int number);

    Page<ExaminationResultsComDO> findList(Map map , int current , int number);
    
    List<ExaminationResultsExportVo> exportList(Map map);

    List<ExaminationResultsExportAllVo> exportListAll(Map map);

    List<ExaminationResultsPoVo> resultList(Long ebatchId);

    //理论统计
    List<ExaminationResultsABCPoVo> listABC();

    /**
     * 制定照护计划分数统计
     * @return
     */
    Page<ExaminationResultsPoVo> zhiDingStatistics(ExaminationResultsComDO examinationResultsComDO);


    /**
     * 制定照护计划分数统计导出
     * @return
     */
    void zhiDingDownloadImport(HttpServletResponse response, ExaminationResultsComDO examinationAnswerSheetComDT);

    /**
     * 职业素养测评分数统计
     * @return
     */
    Page<ExaminationResultsPoVo> zhiYeStatistics(ExaminationResultsComDO examinationResultsComDO);

    /**
     * 职业素养测评分数统计导出
     * @return
     */
    void zhiYeDownloadImport(HttpServletResponse response, ExaminationResultsComDO examinationAnswerSheetComDT);

    /**
     * 实操居家场景分数统计
     * @return
     */
    Page<ExaminationResultsPoVo> juJiaStatistics(ExaminationResultsComDO examinationResultsComDO);

    /**
     * 实操居家场景分数统计导出
     * @return
     */
    void juJiaDownloadImport(HttpServletResponse response, ExaminationResultsComDO examinationAnswerSheetComDT);

    /**
     * 月子中心场景成绩统计
     * @return
     */
    Page<ExaminationResultsPoVo> yueZiStatistics(ExaminationResultsComDO examinationResultsComDO);


    /**
     * 月子中心场景成绩统计导出
     * @return
     */
    void yueZiDownloadImport(HttpServletResponse response, ExaminationResultsComDO examinationAnswerSheetComDT);


    /**
     * 成绩总统计
     * @return
     */
    Page<OverallStatisticsVo> overallStatistics(ExaminationResultsComDO examinationResultsComDO);

    /**
     * 成绩总统计导出
     * @return
     */
    void overallStatisticsDownloadImport(HttpServletResponse response,ExaminationResultsComDO examinationResultsComDO);

    /**
     * 成绩公示
     * @param response
     * @param examinationResultsComDO
     */
    void documentWord(HttpServletResponse response,ExaminationResultsComDO examinationResultsComDO) throws Exception;

    /** 各模块得分 */
    Result<?> moduleScoreList();

    /** 总得分占比 */
    Result<?> totalScoreList();

    /** 得分区间分布 */
    Result<?> scoreRangeList();

}
